﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Practices.ObjectBuilder;
using GC2.Entities.Seguridad;
using GC2.Entities.Admin;
using GC2.Bussines.BMAdmin;

public partial class Empleados_Faltas: GenericPage
{
    #region Propiedades
    Usuarios usuario = new Usuarios();
    private string scriptSession
    {
        get
        {
            return (string)Session["scriptSession"];
        }
        set
        {
            Session["scriptSession"] = value;
        }
    }

    private Param param = new Param();

    #endregion

    #region Controles

    #region Page_Load
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            SetearCultura();
            SetearConexion();
            if (!this.IsPostBack)
            {
                usuario = (Usuarios)Session["UsuarioActual"];
                Limpiar();
                btnOtro.Visible = false;
                List<Empleados> listaEmpleados = new List<Empleados>();
                BMEmpleados bmEmpleados = new BMEmpleados(Connection);
                listaEmpleados = bmEmpleados.BMEmpleadosGetAll();
                Session["listaEmpleados"] = listaEmpleados;
                lblAccion.Text = "Seleccionar Empleado";
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region txtIdEmpleado_TextChanged
    protected void txtIdEmpleado_TextChanged(object sender, EventArgs e)
    {
        try
        {
            BuscarEmpleado();
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region btnBuscarEmpleado_Click
    protected void btnBuscarEmpleado_Click(object sender, EventArgs e)
    {
        try
        {
            BuscarEmpleado();
        }
        catch (Exception ex) { throw ex; }
    }
    #endregion

    #region btnGuardar_Click
    protected void btnGuardar_Click(object sender, EventArgs e)
    {
        try
        {
            if (txtIdEmpleado.Text != "")
            {
                Guardar();
            }
            else
            {
                mpeError.Show();
            }
        }
        catch (Exception ex) { throw ex; }
    }
    #endregion

    #region btnOtro_Click
    protected void btnOtro_Click(object sender, EventArgs e)
    {
        try
        {
            Limpiar();
            btnOtro.Visible = false;
            btnGuardar.Enabled = true;
            btnVer.Enabled = true;
        }
        catch (Exception ex) { throw ex; }
    }
    #endregion

    #region btnCancelar_Click
    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        try
        {
            Response.Redirect("~/Seguridad/Default.aspx", false);
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region gvFaltas_PageIndexChanging
    protected void gvFaltas_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        gvFaltas.PageIndex = e.NewPageIndex;
        CargarGrilla();
    }
    #endregion

    #region gvFaltas_RowDeleting
    protected void gvFaltas_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        try
        {
            List<Faltas> listaFaltas = (List<Faltas>)Session["listaFaltas"];
            Faltas falta = new Faltas();
            falta.Id_Empleado = Convert.ToInt64(txtIdEmpleado.Text.Trim());
            falta.Id_Falta = listaFaltas[e.RowIndex].Id_Falta;
            BMFaltas bmFaltas = new BMFaltas(Connection);
            bmFaltas.BMFaltasDelete(falta);
            ActualizarGrilla(falta);
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region btnVer_Click
    protected void btnVer_Click(object sender, EventArgs e)
    {
        try
        {
            if (txtIdEmpleado.Text != "")
            {
                Faltas falta = new Faltas();
                if (txtIdEmpleado.Text != "")
                {
                    falta.Id_Empleado = Convert.ToInt64(txtIdEmpleado.Text.Trim());
                    ActualizarGrilla(falta);
                    btnGuardar.Enabled = true;
                }
            }
            else
            {
                mpeError.Show();
            }
        }
        catch (Exception ex) { throw ex; }
    }
    #endregion

    #endregion

    #region Métodos

    #region BuscarEmpleado
    public void BuscarEmpleado()
    {
        try
        {
            List<Empleados> listaEmpleados = new List<Empleados>();
            listaEmpleados = (List<Empleados>)Session["listaEmpleados"];
            Empleados empleado = new Empleados();
            if (txtIdEmpleado.Text.Trim() != "")
            {
                empleado.Id_Empleado = Convert.ToInt16(txtIdEmpleado.Text.Trim());
            }
            empleado.Nombre = txtEmpleado.Text.Trim();

            bool encontrado = false;
            foreach (Empleados item in listaEmpleados)
            {
                if (item.Id_Empleado == empleado.Id_Empleado)
                {
                    txtIdEmpleado.Text = item.Id_Empleado.ToString();
                    txtEmpleado.Text = item.Nombre;
                    encontrado = true;
                    break;
                }
                if (item.Nombre == empleado.Nombre)
                {
                    txtIdEmpleado.Text = item.Id_Empleado.ToString();
                    txtEmpleado.Text = item.Nombre;
                    encontrado = true;
                    break;
                }
            }

            if (!encontrado)
            {
                txtIdEmpleado.Text = "";
                txtEmpleado.Text = "";
                #region dispararPopUp(hacePostBack)

                string scriptSession = @"
            <script language=""javascript"" type=""text/javascript"">
            <!--
                function mostrarEmpleado()
                {
                    var stringURL = '../Admin/BuscarEmpleado.aspx?pStation=0';
                    var oINPUTS = document.getElementsByTagName (""INPUT"");
                    for(var a=0;a<oINPUTS.length; a++)
                    {
                        //Validaciones para cuando el control fue arrastrado a un PopUP (Sin MasterPage)

                        if(oINPUTS[a].getAttribute(""id"") == 'ct100_DefaultContent_txtIdEmpleado')
                        {
                            //alert('U1a: &IdEmpleado = ' + oINPUTS[a].getAttribute(""value""));
                            stringURL = stringURL + '&Id_Empleado=' + oINPUTS[a].getAttribute(""value"");
                        }
                        if(oINPUTS[a].getAttribute(""id"") == 'ct100_DefaultContent_txtEmpleado')
                        {  
                            //alert('U2a: &Empleado = ' + oINPUTS[a].getAttribute(""value""));
                            stringURL = stringURL + '&Empleado=' + oINPUTS[a].getAttribute(""value"");
                        }
                    }
                    // alert(stringURL);
                    var newWin = window.open(stringURL, ""popup"", ""menubar=no, resizable=no, scrollbars=yes, height=450, width=550, left=100, top=100"");
                }
                mostrarEmpleado();
            //-->
            </script>
            ";

                Page.ClientScript.RegisterStartupScript(this.GetType(), "ScriptA", scriptSession);
                #endregion
            }

        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region Guardar
    protected void Guardar()
    {
        try
        {
            Faltas falta = new Faltas();
            BMFaltas bmFaltas = new BMFaltas(Connection);
            falta.Id_Empleado = Convert.ToInt64(txtIdEmpleado.Text.Trim());
            falta.Fecha = Fecha1.GetFecha();
            falta.Estado = 1;
            bmFaltas.BMFaltasInsert(falta);
            ActualizarGrilla(falta);
            lblAccion.Text = "Falta Cargada";
            btnOtro.Visible = true;
            btnGuardar.Enabled = false;
            btnVer.Enabled = false;
        }
        catch (Exception ex) { throw ex; }
    }
    #endregion

    #region Limpiar
    protected void Limpiar()
    {
        try
        {
            txtIdEmpleado.Text = "";
            txtEmpleado.Text = "";
            Fecha1.SetFecha(DateTime.Now);
            lblAccion.Text = "Seleccionar Empleado";
            btnOtro.Visible = false;
            btnGuardar.Visible = true;
            List<Faltas> listaFaltas = new List<Faltas>();
            Session["listaFaltas"] = listaFaltas;
            CargarGrilla();
        }
        catch (Exception ex) { throw ex; }
    }
    #endregion

    #region CargarGrilla
    protected void CargarGrilla()
    {
        try
        {
            List<Faltas> listaFaltas = new List<Faltas>();
            listaFaltas = (List<Faltas>)Session["listaFaltas"];
            gvFaltas.DataSource = listaFaltas;
            gvFaltas.DataBind();
        }
        catch (Exception ex) { throw ex; }
    }
    #endregion

    #region ActualizarGrilla
    protected void ActualizarGrilla(Faltas falta)
    {
        try
        {
            BMFaltas bmFaltas = new BMFaltas(Connection);
            List<Faltas> listaFaltas = new List<Faltas>();
            falta.Estado = 1;
            listaFaltas =  bmFaltas.BMFaltasGetAllByEmpleado(falta);
            Session["listaFaltas"] = listaFaltas;
            CargarGrilla();
        }
        catch (Exception ex) { throw ex; }
    }
    #endregion

    #endregion
}
